package com.learn.databinding.bindingadapters

import android.os.Build
import android.view.View
import android.view.View.OnAttachStateChangeListener
import android.view.ViewGroup
import androidx.core.view.updateLayoutParams
import androidx.databinding.BindingAdapter
import androidx.databinding.adapters.ListenerUtil
import androidx.databinding.adapters.ViewBindingAdapter.OnViewAttachedToWindow
import androidx.databinding.adapters.ViewBindingAdapter.OnViewDetachedFromWindow
import com.learn.databinding.R
import java.sql.Time

class ViewBindingAdapter {
    companion object {
        /**
         * 定义两个属性"app:size"和"app:testColor"
         */
        @BindingAdapter(
            value = ["app:size", "app:testColor"],
            requireAll = false
        )
        /**
         * @BindingAdapter注解修饰的方法有以下注意事项：
         * 1.该方法必须是个静态方法（@BindingAdapter注解修饰，非静态方法会报错）
         * 2.该方法第一个参数就是要和指定属性进行关联的View类型，这里直接使用了View，可以根据需要指定，比如ImageView等
         * 3.该方法其他参数和关联属性相对应
         * 4.该方法名随意
         */
        @JvmStatic
        fun setViewSize(view: View, size: Float, testColor: Int) {
            view.updateLayoutParams<ViewGroup.LayoutParams> {
                width = size.toInt()
                height = size.toInt()
            }
            view.setBackgroundColor(testColor)
        }
    }
}